package com.hhkj.api.order.service.biz;

import com.github.pagehelper.PageInfo;
import com.hhkj.admin.order.domain.Order;
import com.hhkj.api.order.model.req.*;
import com.hhkj.api.order.model.res.*;
import com.wechat.pay.java.service.payments.jsapi.model.PrepayWithRequestPaymentResponse;

/**
 * ApiOrderBizService
 *
 * @author HHKJ-SERVER-ZJ
 * @since 2023/11/1 16:55
 */
public interface ApiOrderBizService {

    /**
     * 下线支付订单
     *
     * @param req 请求信息
     * @return true/false
     */
    boolean payByOffline(ApiOrderOfflinePayReq req);

    /**
     * 创建微信支付
     *
     * @param req 请求信息
     * @return 微信支付预id
     */
    PrepayWithRequestPaymentResponse payByWechat(ApiOrderWechatPayReq req);

    /**
     * 统计当前商家的订单信息
     *
     * @return 统计信息
     */
    ApiOrderCountRes count();

    /**
     * 取消订单
     *
     * @param req 请求信息
     * @return true/false
     */
    boolean cancel(ApiOrderCancelReq req);

    /**
     * 获取分页信息
     *
     * @param req 请求信息
     * @return 分页信息
     */
    PageInfo<ApiOrderIncludeItemRes> pagingIncludeItem(ApiOrderIncludeItemReq req);

    /**
     * 根据id 获取订单详情
     *
     * @param id 订单id
     * @return 订单详情
     */
    ApiOrderDetailRes getDetailById(Long id);

    /**
     * 分页信息
     *
     * @param req 请求参数
     * @return 订单分页信息
     */
    PageInfo<ApiOrderRes> paging(ApiOrderReq req);

    /**
     * 新增订单
     *
     * @param req 请求信息
     * @return 错误信息
     */
    Order save(ApiOrderSaveReq req);
}
